// 引入 MongoDB 官方驱动包
const { MongoClient } = require('mongodb'); // 引入 MongoClient 用于连接数据库

// 数据库连接字符串（请根据你的实际情况修改）
const uri = 'mongodb://localhost:27017'; // 本地 MongoDB 服务地址，默认端口27017

// 数据库名称（可根据实际项目需求修改）
const dbName = 'corp_site'; // 企业官网数据库名称

// 创建一个全局变量用于存储数据库连接实例
let cachedClient = null; // 缓存客户端，避免重复连接
let cachedDb = null;     // 缓存数据库对象

/**
 * 获取 MongoDB 数据库连接
 * 该函数会自动复用已存在的连接，避免每次请求都新建连接，提升性能
 * @returns {Promise<Db>} 返回数据库对象
 */
async function getDb() {
  // 如果已经有缓存的连接，直接返回
  if (cachedDb && cachedClient) {
    return cachedDb;
  }

  // 创建新的 MongoClient 实例
  const client = new MongoClient(uri);

  // 连接到 MongoDB 服务器
  await client.connect(); // 连接是异步的，需要等待连接完成

  // 获取指定名称的数据库对象
  const db = client.db(dbName);

  // 缓存连接和数据库对象，后续复用
  cachedClient = client;
  cachedDb = db;

  // 返回数据库对象
  return db;
}

// 导出 getDb 函数，供 API 路由等其他模块调用
module.exports = { getDb }; 